Dynamically split an array into subarrays